using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace HengTong.Model.Db.Hr.Bill;

/// <summary>
/// 员工续签申请表
/// </summary>
[Display(Name = "员工续签申请", Description = "员工续签申请表单", GroupName = "人事业务表单")]
public class SysHrRenewRequestBill : BaseBill
{
    [Required]
    [Display(Name = "员工ID", Description = "关联员工主键", GroupName = "续签信息")]
    public Guid? PersonId { get; set; }

    [Display(Name = "员工", Description = "关联的员工实体", GroupName = "续签信息")]
    public SysPerson Person { get; set; }

    [Display(Name = "员工工号", Description = "员工工号", GroupName = "续签信息")]
    [StringLength(128)]
    public string StaffNo { get; set; }

    [Display(Name = "员工姓名", Description = "员工姓名", GroupName = "续签信息")]
    [StringLength(128)]
    public string Name { get; set; }

    [Display(Name = "原员工合同ID", Description = "关联员工合同", GroupName = "续签信息")]
    public Guid? PersonContractId { get; set; }

    [Display(Name = "原员工合同", Description = "关联员工合同", GroupName = "续签信息")]
    public SysPersonContract PersonContract { get; set; }

    [Display(Name = "用工形式", Description = "用工形式", GroupName = "续签信息")]
    public EmploymentType? EmploymentType { get; set; }

    [Display(Name = "合同类型", Description = "合同类型", GroupName = "续签信息")]
    public ContractType? ContractType { get; set; }

    [Display(Name = "合同编号", Description = "合同编号", GroupName = "合同信息")]
    [StringLength(64)]
    public string ContractNo { get; set; }

    [Display(Name = "签订日期", Description = "合同签订日期", GroupName = "合同信息")]
    public DateTime? SignDate { get; set; }

    [Display(Name = "到期日期", Description = "合同到期日期", GroupName = "合同信息")]
    public DateTime? ExpireDate { get; set; }

    [Display(Name = "合同文件", Description = "上传的合同文件", GroupName = "续签信息")]
    public List<SysHrRenewContractFile> ContractFiles { get; set; }
}